/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Presenter;

import DAO.ClienteDAO;
import Model.Cliente;
import java.awt.Rectangle;
import java.io.File;
import java.util.List;
import java.util.Scanner;
import javax.swing.JProgressBar;

/**
 *
 * @author Paola
 */
public class ClientePresenter {
    public static JProgressBar barrita ;
    
    public static Cliente registrarCliente(String apPaterno, String apMaterno, String nombres, String docId, String direccion, String telefono, String email) {
        try{  
            Cliente cliente = new Cliente();
            cliente.setApellidoPaterno(apPaterno);
            cliente.setApellidoMaterno(apMaterno);
            cliente.setNombres(nombres);
            cliente.setNroDocumento(docId);
            cliente.setDireccion(direccion);
            cliente.setTelefono(telefono);
            cliente.setCorreo(email);
            cliente.setEstado(1);
            ClienteDAO.registrarCliente(cliente);
            return cliente ;
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }        
    }
    
    public static void modificarCliente( int idCliente,String apPaterno , String apMaterno , String nombres , String direccion , String telefono , String email , int estado){
        try{
        Cliente cliente = ClienteDAO.cargarCliente(idCliente);
        cliente.setApellidoPaterno( apPaterno) ;
        cliente.setApellidoMaterno( apMaterno ) ;
        cliente.setNombres( nombres ) ;
        //cliente.setNroDocumento( docId ) ;
        cliente.setDireccion( direccion ) ;
        cliente.setTelefono( telefono ) ;
        cliente.setCorreo( email ) ;
        cliente.setEstado(estado);
        ClienteDAO.modificarCliente(cliente);
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
        }
    }    
    
    public static List<Cliente> buscarCliente( String nombre , String apPaterno , String apMaterno , String docIdentidad ){
        try{
        if( nombre.isEmpty() ) nombre = null ;
        if( apPaterno.isEmpty() ) apPaterno = null ;
        if( apMaterno.isEmpty() ) apMaterno = null ;
        if( docIdentidad.isEmpty() ) docIdentidad = null ;
        return ClienteDAO.buscarCliente( nombre , apPaterno , apMaterno , docIdentidad ) ;
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }        
    }
    
    public static Cliente cargarCliente(int idCliente){
      try{  
        return ClienteDAO.cargarCliente(idCliente) ;
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }          
    }
    public static Cliente existeDocId(String dni){
      try{  
        return ClienteDAO.existeDocId(dni);
        }
        catch (Exception e){
            System.out.println("MENSAJE DE ERROR:"+e);
            return null;
        }          
    }    
    
    public static void registrarCliente( String path ){
        try{
            Scanner sc = new Scanner( new File( path ) ) ;
            int N = Integer.parseInt( sc.nextLine() ) ;
            double cantidad = 100.0 / (double)N ;
            for(int i = 0 ; i < N ; i++){
                String nombre = sc.nextLine() ; // nombre
                String apPaterno = sc.nextLine() ; // ap paterno
                String apMaterno = sc.nextLine() ; // ap materno
                String direccion = sc.nextLine() ; // direccion
                String telefono = sc.nextLine() ; // telefono
                String correo = sc.nextLine() ; // correo
                String dni = sc.nextLine() ; // dni
                
                Cliente cliente = new Cliente() ;
                cliente.setNombres( nombre ) ;
                cliente.setApellidoPaterno( apPaterno ) ;
                cliente.setApellidoMaterno( apMaterno ) ;
                cliente.setDireccion( direccion ) ;
                cliente.setTelefono( telefono ) ;
                cliente.setCorreo( correo ) ;
                cliente.setNroDocumento( dni ) ;
                cliente.setEstado( 1 ) ;
                ClienteDAO.registrarCliente( cliente ) ;
                
                double value = i * cantidad ;
                barrita.setValue( (int)value ) ;
                Rectangle progress = barrita.getBounds() ;
                progress.x = 0 ;
                progress.y = 0 ;
                barrita.paintImmediately( progress ) ;
            }
            barrita.setValue( 100 ) ;
            Rectangle progress = barrita.getBounds() ;
            progress.x = 0 ;
            progress.y = 0 ;
            barrita.paintImmediately( progress ) ;
        }catch( Exception e ){
            System.out.println( "Error en carga masiva de clientes" ) ;
        }
    }

}
